package com.itheima.d2_final;

public class Demo03 {
    public static void main(String[] args) {
        Teacher t1 = new Teacher("张三");
        Teacher t2 = new Teacher("李四");

        //在实例范围内不能改变值（即存储在堆内存中的对象值不可改变）
//        t1.name = "张三丰"; //报错：Cannot assign a value to final variable 'name'
//        t2.name = "李"; //报错：Cannot assign a value to final variable 'name'

        System.out.println("t1.name = " + t1.name);
        System.out.println("t2.name = " + t2.name);
    }
}


/**
 * 扩展：实例常量
 * 实例常量和静态常量的区别？
 *      静态常量（有static的）是静态的，属于类层面的数据，在内存中只有一份数据。数据被赋值后整个系统范围内都不能改变
 *      实例常量（无static的）是非静态的，属于对象层面，一个类有几个对象，就有几份数据。实例常量的范围在对象周期内
 */
class Teacher{
//    public final String name = "兮";
    public final String name;

    public Teacher(String name) {
        this.name = name;
    }
}
